package com.hirsi.module.auth.vo.param;

import com.hirsi.common.core.validator.annotation.ChineseName;
import com.hirsi.common.core.validator.annotation.Idcard;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;

import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;

@EqualsAndHashCode(callSuper = true)
@ApiModel("注册账号入参")
@Data
public class RegisterAccountParam extends RegisterCheckPhoneParam {

    @ApiModelProperty("账号id，更新时传入")
    private Integer id;

    @ApiModelProperty(value = "姓名", required = true, position = 1)
    @ChineseName
    private String name;

    @ApiModelProperty(value = "身份证号", required = true, position = 4)
    @Idcard
    private String idCard;

    @ApiModelProperty(value = "省份id", required = true, position = 5)
    @NotNull(message = "请选择所在地区")
    private Integer provinceId;

    @ApiModelProperty(value = "市id", required = true, position = 6)
    @NotNull(message = "请选择所在地区")
    private Integer cityId;

    @ApiModelProperty(value = "区县id", required = true, position = 7)
    @NotNull(message = "请选择所在地区")
    private Integer districtId;

    @ApiModelProperty(value = "街道id", required = true, position = 8)
    @NotNull(message = "请选择所在地区")
    private Integer streetId;

    @ApiModelProperty(value = "详细地址", required = true, position = 9)
    @NotEmpty(message = "请输入详细地址")
    private String address;

    @ApiModelProperty(value = "开发者编码(选填)，用于域名前缀", position = 10)
    private String code;

    @ApiModelProperty(value = "头像(选填)", position = 11)
    private String avatar;

    @ApiModelProperty(value = "昵称(选填)，默认使用姓名生成", position = 12)
    private String nick;

    @ApiModelProperty(value = "邮箱(选填)", position = 13)
    private String email;

    @ApiModelProperty(value = "用户名(选填)，默认自动生成", position = 14)
    private String username;

    @ApiModelProperty(value = "密码(选填)，默认自动生成", position = 15)
    private String password;

    @ApiModelProperty(value = "重复密码(选填)", position = 16)
    private String confirmPassword;

    @ApiModelProperty(value = "备注内容", position = 17)
    private String remark;
}
